One or more aspects relate, in general, to protecting against errors in circuits, and in particular, to protecting binary and decimal arithmetic data and/or logic in such circuits.
Errors in circuits may occur from multiple sources, including particles hitting the circuit, circuits going bad during their end of life, variations in the physical design processes causing stuck-at faults, or design errors that went unnoticed into production.
One way to protect arithmetic logic, i.e., detect errors and possibly correct for such errors, is to model the arithmetic in modulo logic (i.e., residue logic), and then, compare the modulo result with the expected arithmetic result. For high protection, decimal arithmetic is checked with residue 9, whereas binary and hexadecimal arithmetic are checked with residue 15.